SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE Procedure [dbo].[SP_TDMOVI_BANC_I06]    
/*-------------------------------------------------------*/    
/*---Empresa              : OFISIS S.A.                --*/    
/*---Cliente              : OFISIS                     --*/    
/*---Sistema              : Tesoreria                  --*/    
/*---Mödulo               : Empresa                    --*/    
/*---Programa             : Inserta Distribuci½n y     --*/    
/*---                       update Cabecera si es dif. --*/    
/*---                       Movimiento Bancos          --*/    
/*---                       (Ingresos)                 --*/      
/*---Script               : tdbanc_p.sql               --*/    
/*---Nombre SP            : SP_TDMOVI_BANC_I06         --*/    
/*---Desarrollado por     : Ernesto G½mez T.           --*/    
/*---Fecha Creaciön       : 02/02/2004                 --*/    
/*---Base Datos           : Microsoft Sql Server       --*/    
/*---Versiön              : 7.0                        --*/    
/*---Invoca a SP          :                            --*/    
/*-------------------------------------------------------*/    
    
/*-------------------------------------------------------*/    
/*---Modificado 1 por     : Carlos Marquez Escobar     --*/    
/*---Fecha Modificaciön   : 02/07/2004                 --*/     
/*---Detalle Modificaciön : Fecha para Documentos      --*/    
/*-------------------------------------------------------*/    
/*-------------------------------------------------------*/    
/*---Modificado 2 por     : Maribel Julca Rodriguez      --*/    
/*---Fecha Modificaci©n   : 20/04/2005                   --*/     
/*---Detalle Modificaci©n : ingreso de los campos CO_USUA_CREA Y CO_USUA_MODI                           --*/    
/*-------------------------------------------------------*/    
  
/*-------------------------------------------------------*/    
/*---Comentarios                                       --*/    
/*---                                                  --*/    
/*---                                                  --*/    
/*-------------------------------------------------------*/    
/*-------------------------------------------------------*/    
/*--- Drop Proc SP_TDMOVI_BANC_I06                      --*/    
/*--- Grant all on SP_TDMOVI_BANC_I06 to public         --*/     
/*--- SP_TDMOVI_BANC_I06 '01', 'OFISIS', 'CON', '191-00000-01',    
'2004', '02','I','00100041', 1, '96351', 'A', 'K', 'A0202',     
'001', 'M', 500000, 500000,     
'FAC', '010101', '2004-05-05', 'U'    
             --*/    
/*-------------------------------------------------------*/    
    
@ISCO_EMPR  TD_VC_002,     
@ISCO_USUA_MODI  TD_VC_008_USUA,    
@ISCO_BANC  TD_VC_003,    
@ISNU_CNTA_BANC  TD_VC_020,    
@ISAA_BNCO  TD_VC_004,    
@ISMM_BNCO  TD_VC_002,    
@ISTI_MOVI_BANC  TD_VC_001,    
@ISNU_COMP_BANC  TD_VC_008,     
@INNU_SECU  TD_IN_001,    
@ISCO_CNTA_EMPR  TD_VC_020,    
@ISTI_MOVI  TD_VC_001,    
@ISCO_TIPO_AUXI  TD_VC_001,    
@ISCO_AUXI_EMPR  TD_VC_020,    
@ISCO_ORDE_SERV  TD_VC_020,    
@ISST_DIST  TD_VC_001,    
@INPO_DIST  TD_NU_016_004,    
@INIM_DIST  TD_NU_016_004,    
@ISTI_DOCU  TD_VC_003,    
@ISNU_DOCU  TD_VC_020,    
@IDFE_DOCU  TD_DT_001,    
@ISTI_TIPO  TD_VC_001,    
@ISDE_OBSE  TD_VC_100,  
@ISCO_UNID_CNTB TD_VC_003  
 As  
Declare     
@VNIM_MOVI_ANTE  TD_NU_016_004,      
@VNIM_DIST       TD_NU_016_004,    
@VNNU_SECU       TD_IN_001    
    
Begin Tran SP_TDMOVI_BANC_I06    
    
     
 If @ISTI_TIPO = 'I'    
     
  Insert Into TDBANC_DIST (CO_EMPR, CO_USUA_CREA, FE_USUA_CREA,CO_USUA_MODI, FE_USUA_MODI,     
  CO_BANC, NU_CNTA_BANC, AA_BNCO, MM_BNCO,    
  TI_MOVI_BANC, NU_COMP_BANC, NU_SECU, CO_CNTA_EMPR,    
  TI_MOVI, CO_TIPO_AUXI, CO_AUXI_EMPR, CO_ORDE_SERV,    
  ST_DIST, PO_DIST, IM_DIST, TI_DOCU, NU_DOCU, FE_DOCU, DE_OBSE, CO_UNID_CONC)    
  Values  ( @ISCO_EMPR, @ISCO_USUA_MODI, GETDATE(),@ISCO_USUA_MODI, getdate(),    
  @ISCO_BANC, @ISNU_CNTA_BANC,    
  @ISAA_BNCO, @ISMM_BNCO, @ISTI_MOVI_BANC,    
  @ISNU_COMP_BANC, @INNU_SECU,    
  @ISCO_CNTA_EMPR, @ISTI_MOVI,    
  @ISCO_TIPO_AUXI, @ISCO_AUXI_EMPR,    
  @ISCO_ORDE_SERV, @ISST_DIST,    
  @INPO_DIST, @INIM_DIST, @ISTI_DOCU,    
  @ISNU_DOCU, @IDFE_DOCU, @ISDE_OBSE, @ISCO_UNID_CNTB)  
  If @@error <> 0    
  Begin    
   Rollback tran SP_TDMOVI_BANC_I06    
   Return    
  End        
     
 If @ISTI_TIPO = 'U'    
    
 /*  IF @INNU_SECU IS NULL    
   Begin    
   Select @VNNU_SECU   = NU_SECU    
   From   TDBANC_DIST    
   Where  CO_EMPR = @ISCO_EMPR    
   and    CO_UNID_CONC = @ISCO_UNID_CNTB  
   and    CO_BANC = @ISCO_BANC    
   and    NU_CNTA_BANC = @ISNU_CNTA_BANC    
   and    AA_BNCO = @ISAA_BNCO    
   and    MM_BNCO = @ISMM_BNCO     
   and    TI_MOVI_BANC = @ISTI_MOVI_BANC    
   and    NU_COMP_BANC = @ISNU_COMP_BANC    
       
   If @VNNU_SECU > 0    
      Select @VNNU_SECU = @VNNU_SECU + 1    
   Else    
      Select @VNNU_SECU = 1       
    
    
    
   Insert Into TDBANC_DIST (CO_EMPR, CO_USUA_CREA, FE_USUA_CREA,CO_USUA_MODI, FE_USUA_MODI,  
   CO_BANC, NU_CNTA_BANC, AA_BNCO, MM_BNCO,    
   TI_MOVI_BANC, NU_COMP_BANC, NU_SECU, CO_CNTA_EMPR,    
   TI_MOVI, CO_TIPO_AUXI, CO_AUXI_EMPR, CO_ORDE_SERV,    
   ST_DIST, PO_DIST, IM_DIST, TI_DOCU, NU_DOCU, FE_DOCU, DE_OBSE, CO_UNID_CONC)    
   Values  ( @ISCO_EMPR, @ISCO_USUA_MODI, GETDATE(),@ISCO_USUA_MODI, GETDATE(),    
   @ISCO_BANC, @ISNU_CNTA_BANC,    
   @ISAA_BNCO, @ISMM_BNCO, @ISTI_MOVI_BANC,    
   @ISNU_COMP_BANC, @VNNU_SECU,    
   @ISCO_CNTA_EMPR, @ISTI_MOVI,    
   @ISCO_TIPO_AUXI, @ISCO_AUXI_EMPR,    
   @ISCO_ORDE_SERV, @ISST_DIST,    
   @INPO_DIST, @INIM_DIST, @ISTI_DOCU,    
   @ISNU_DOCU, @IDFE_DOCU, @ISDE_OBSE, @ISCO_UNID_CNTB)  
   If @@error <> 0    
   Begin    
    Rollback tran SP_TDMOVI_BANC_I06    
    Return    
   End        
    
                  End    
                Else   */  
   Update  TDBANC_DIST    
   Set CO_CNTA_EMPR = @ISCO_CNTA_EMPR,    
   TI_MOVI = @ISTI_MOVI,    
   CO_TIPO_AUXI = @ISCO_TIPO_AUXI,    
   CO_AUXI_EMPR = @ISCO_AUXI_EMPR,    
   CO_ORDE_SERV = @ISCO_ORDE_SERV,    
   TI_DOCU = @ISTI_DOCU,    
   NU_DOCU = @ISNU_DOCU,    
   FE_DOCU = @IDFE_DOCU,    
   ST_DIST = @ISST_DIST,    
   PO_DIST = @INPO_DIST,    
   IM_DIST = @INIM_DIST,    
   DE_OBSE = @ISDE_OBSE,    
   CO_USUA_MODI = @ISCO_USUA_MODI,    
   FE_USUA_MODI =  getdate()    
   Where CO_EMPR = @ISCO_EMPR    
   And CO_UNID_CONC = @ISCO_UNID_CNTB  
   And CO_BANC = @ISCO_BANC    
   And NU_CNTA_BANC = @ISNU_CNTA_BANC    
   And AA_BNCO =  @ISAA_BNCO    
   And MM_BNCO =  @ISMM_BNCO    
   And TI_MOVI_BANC = @ISTI_MOVI_BANC    
   And NU_COMP_BANC = @ISNU_COMP_BANC    
   And NU_SECU = @INNU_SECU    
   If @@error <> 0    
    Begin    
    Rollback tran SP_TDMOVI_BANC_I06    
    Return    
   End        
     
 If @ISTI_TIPO = 'D'    
     
  Delete TDBANC_DIST    
  Where CO_EMPR = @ISCO_EMPR    
  And CO_UNID_CONC = @ISCO_UNID_CNTB  
  And CO_BANC = @ISCO_BANC    
  And NU_CNTA_BANC = @ISNU_CNTA_BANC    
  And AA_BNCO =  @ISAA_BNCO    
  And MM_BNCO =  @ISMM_BNCO    
  And TI_MOVI_BANC = @ISTI_MOVI_BANC    
  And NU_COMP_BANC = @ISNU_COMP_BANC    
  And NU_SECU = @INNU_SECU    
      
  If @@error <> 0    
   Begin    
   Rollback tran SP_TDMOVI_BANC_I06    
   Return    
  End        
    
  Select @VNIM_MOVI_ANTE  = Round(Isnull(IM_MOVI,0),2)    
  From   TCMOVI_BANC    
  Where  CO_EMPR = @ISCO_EMPR    
  And    CO_UNID_CONC = @ISCO_UNID_CNTB  
  And    CO_BANC = @ISCO_BANC     
  And    NU_CNTA_BANC = @ISNU_CNTA_BANC      
  And    AA_BNCO = @ISAA_BNCO    
  And    MM_BNCO = @ISMM_BNCO     
  And    TI_MOVI_BANC = @ISTI_MOVI_BANC    
  And    NU_COMP_BANC = @ISNU_COMP_BANC     
     
     
 If  @ISTI_MOVI_BANC = 'I'    
  Select @VNIM_DIST = Round(Sum(Case When TI_MOVI = 'C' Then (-1)*IsNull(IM_DIST,0) ELSE IsNull(IM_DIST,0) End),2)    
  From  TDBANC_DIST    
  Where CO_EMPR = @ISCO_EMPR     
  And   CO_UNID_CONC = @ISCO_UNID_CNTB  
  And   CO_BANC = @ISCO_BANC     
  And   NU_CNTA_BANC = @ISNU_CNTA_BANC     
  And   AA_BNCO = @ISAA_BNCO    
  And   MM_BNCO = @ISMM_BNCO     
  And   TI_MOVI_BANC = @ISTI_MOVI_BANC     
  And   NU_COMP_BANC = @ISNU_COMP_BANC     
     
 Else If @ISTI_MOVI_BANC = 'E'    
  Select @VNIM_DIST = Round(Sum(Case When TI_MOVI = 'A' Then (-1)*IsNull(IM_DIST,0) ELSE IsNull(IM_DIST,0) End),2)    
  From  TDBANC_DIST    
  Where CO_EMPR = @ISCO_EMPR     
  And   CO_UNID_CONC = @ISCO_UNID_CNTB  
  And   CO_BANC = @ISCO_BANC     
  And   NU_CNTA_BANC = @ISNU_CNTA_BANC     
  And   AA_BNCO = @ISAA_BNCO    
  And   MM_BNCO = @ISMM_BNCO     
  And   TI_MOVI_BANC = @ISTI_MOVI_BANC     
  And   NU_COMP_BANC = @ISNU_COMP_BANC     
     
 Update TCMOVI_BANC    
 Set IM_MOVI = Round(IsNull(@VNIM_DIST,0),2),    
     CO_USUA_MODI = @ISCO_USUA_MODI,     
     FE_USUA_MODI = getdate()    
 Where CO_EMPR = @ISCO_EMPR     
 And   CO_UNID_CONC = @ISCO_UNID_CNTB  
 And   CO_BANC = @ISCO_BANC     
 And   NU_CNTA_BANC = @ISNU_CNTA_BANC     
 And   AA_BNCO = @ISAA_BNCO    
 And   MM_BNCO = @ISMM_BNCO     
 And   TI_MOVI_BANC = @ISTI_MOVI_BANC     
 And   NU_COMP_BANC = @ISNU_COMP_BANC     
     
 If @@error <> 0    
 Begin    
  Rollback tran SP_TDMOVI_BANC_I06    
  Return    
 End      
commit tran SP_TDMOVI_BANC_I06    
    
/*------------------------ Fin ------------------------------*/  
grant all on SP_TDMOVI_BANC_I06 to public 
GO
